package BufferedReaderIO;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/*和BufferedWriter一样的一次性读取8192个字符放在缓冲数组中
 * 在调用read时候，只拿出缓存区的的字符数组进行操作使用。
 * 如果这次的被取空，那么就会自动在次读取8192个字符放在缓冲区
 *
 * 如何使用
 * 首先创建一个普通的FileReader
 * 将这个普通的FileReader包装成为缓冲区的BufferedReader，用构造方法
 *后面和FileReader一样
 *
 * public BufferedReaderO(FileReader  fw); 参数就是一个普通的FileWriter对象。
 * */
public class BufferedReaderIO {
    public static void main(String[] args) throws IOException {
        FileReader fr = new FileReader("file01.txt");
        BufferedReader br = new BufferedReader(fr);
        int ch;
        while ((ch = br.read()) != -1) {
            System.out.print((char) ch);
        }
        br.close();
        System.out.println("\n**************************");


/*        char[] buf = new char[3];//一次性读取3个字符
        int len;
        while ((len = br.read(buf)) != -1) {
            String str = new String(buf, 0, len);
            System.out.println(str);
        }
        br.close();*/


        /* BufferedReader额外提供了一个方法，可以读取一整行的内容字符串
         *
         * public StringreadLine():读取一整行的字符串，返回值当中不包含换行符
         * */

        FileReader fr1 = new FileReader("file01.txt");
        BufferedReader br1 = new BufferedReader(fr1);

 /*       String line = br1.readLine();
        System.out.println(line);
        System.out.println("*************************");
        br1.close();*/
//        简化的读取每一行上面的得每次的调用太麻烦
        String line1;
        while ((line1 = br1.readLine()) != null) {
            System.out.println(line1);
        }
        br1.close();
        System.out.println("*************************");
    }
}
